package br.ufpr.showdomilhao.vo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class PartidaVO implements Serializable {
	
	// fields
	private static final long serialVersionUID = 1L;
	private static int ULTIMA_PERGUNTA = 16;
	private int numeroPergunta = 0;
	private int indicePergunta = 0;
	private boolean ajudaCarta = false;
	private static int QUANTIDADE_PULOS = 3;
	private int quantidadePulosSolicitados = 0;
	private PerguntaVO perguntaAtual = null;
	private double valorGanho = 0.0d;
	private List<CartaVO> cartas;
	
	// getters
	public int getNumeroPergunta() {
		return numeroPergunta;
	}
	public int getIndicePergunta() {
		return indicePergunta;
	}
	public int getRodada() {
		if (this.numeroPergunta > 15)
			return 4;
		if (this.numeroPergunta > 10)
			return 3;
		if (this.numeroPergunta > 5)
			return 2;
		return 1;
	}
	public double getValorPergunta() {
		if (getRodada() == 4)
			return 1000000;
		if (getRodada() == 3)
			return 100000;
		if (getRodada() == 2)
			return 10000;
		return 1000;
	}
	public boolean isAjudaCarta() {
		return ajudaCarta;
	}
	public int getQuantidadePulosSolicitados() {
		return quantidadePulosSolicitados;
	}
	public boolean isPodePular() {
		if (quantidadePulosSolicitados >= QUANTIDADE_PULOS)
			return false;
		if (numeroPergunta == ULTIMA_PERGUNTA)
			return false;
		return true;
	}
	public PerguntaVO getPerguntaAtual() {
		return perguntaAtual;
	}
	public double getValorGanho() {
		return valorGanho;
	}
	public double getValorSeAcertar() {
		if (this.numeroPergunta == 1)
			return 1000;
		if (this.numeroPergunta == 2)
			return 2000;
		if (this.numeroPergunta == 3)
			return 3000;
		if (this.numeroPergunta == 4)
			return 4000;
		if (this.numeroPergunta == 5)
			return 5000;
		if (this.numeroPergunta == 6)
			return 10000;
		if (this.numeroPergunta == 7)
			return 20000;
		if (this.numeroPergunta == 8)
			return 30000;
		if (this.numeroPergunta == 9)
			return 40000;
		if (this.numeroPergunta == 10)
			return 50000;
		if (this.numeroPergunta == 11)
			return 100000;
		if (this.numeroPergunta == 12)
			return 200000;
		if (this.numeroPergunta == 13)
			return 300000;
		if (this.numeroPergunta == 14)
			return 400000;
		if (this.numeroPergunta == 15)
			return 500000;
		if (this.numeroPergunta == ULTIMA_PERGUNTA)
			return 1000000;
		return -1;
	}
	public double getValorSeParar() {
		if (this.numeroPergunta == 1)
			return 500;
		if (this.numeroPergunta == 2)
			return 1000;
		if (this.numeroPergunta == 3)
			return 2000;
		if (this.numeroPergunta == 4)
			return 3000;
		if (this.numeroPergunta == 5)
			return 4000;
		if (this.numeroPergunta == 6)
			return 5000;
		if (this.numeroPergunta == 7)
			return 10000;
		if (this.numeroPergunta == 8)
			return 20000;
		if (this.numeroPergunta == 9)
			return 30000;
		if (this.numeroPergunta == 10)
			return 40000;
		if (this.numeroPergunta == 11)
			return 50000;
		if (this.numeroPergunta == 12)
			return 100000;
		if (this.numeroPergunta == 13)
			return 200000;
		if (this.numeroPergunta == 14)
			return 300000;
		if (this.numeroPergunta == 15)
			return 400000;
		if (this.numeroPergunta == ULTIMA_PERGUNTA)
			return 500000;
		return -1;
	}
	public double getValorSeErrar() {
		if (this.numeroPergunta == 1)
			return 0;
		if (this.numeroPergunta == 2)
			return 500;
		if (this.numeroPergunta == 3)
			return 1000;
		if (this.numeroPergunta == 4)
			return 1500;
		if (this.numeroPergunta == 5)
			return 2000;
		if (this.numeroPergunta == 6)
			return 2500;
		if (this.numeroPergunta == 7)
			return 5000;
		if (this.numeroPergunta == 8)
			return 10000;
		if (this.numeroPergunta == 9)
			return 15000;
		if (this.numeroPergunta == 10)
			return 20000;
		if (this.numeroPergunta == 11)
			return 25000;
		if (this.numeroPergunta == 12)
			return 50000;
		if (this.numeroPergunta == 13)
			return 100000;
		if (this.numeroPergunta == 14)
			return 150000;
		if (this.numeroPergunta == 15)
			return 200000;
		if (this.numeroPergunta == ULTIMA_PERGUNTA)
			return 0;
		return -1;
	}
	public List<CartaVO> getCartas() {
		return cartas;
	}
	public boolean isUltimaPergunta() {
		return this.numeroPergunta == ULTIMA_PERGUNTA;
	}
	
	// setters
	public void setNumeroPergunta(int numeroPergunta) {
		this.numeroPergunta = numeroPergunta;
	}
	public void setIndicePergunta(int indicePergunta) {
		this.indicePergunta = indicePergunta;
	}
	public void setAjudaCarta(boolean ajudaCarta) {
		this.ajudaCarta = ajudaCarta;
	}
	public void setQuantidadePulosSolicitados(int quantidadePulosSolicitados) {
		this.quantidadePulosSolicitados = quantidadePulosSolicitados;
	}
	public void setPerguntaAtual(PerguntaVO perguntaAtual) {
		this.perguntaAtual = perguntaAtual;
	}
	public void setValorGanho(double valorGanho) {
		this.valorGanho = valorGanho;
	}
	public void setCartas(List<CartaVO> cartas) {
		this.cartas = cartas;
	}

}
